<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    var  obj = {
      a: 10
    }
    /* 
    Object.defineProperty 定义属性的对象 （定义属性已存在或者不存在属性）
    好处：
      可以劫持，一个对象的属性
      劫持这个对象的这个属性的获取操作 和  赋值操作
    */
    var a = 10; 
    Object.defineProperty(obj,"a",{
      get(){ //getter 对象 这个属性 取值 拦截器
        return a;
      },
      set(val){ // setter 对象这个属性的 设置值拦截器
        console.log('setter触发了',val);
        a = val;
      }
    })
    console.log(obj.a);
    obj.a = 200;
    console.log(obj.a);
    btn.addEventListener('click',()=>{
      
    })
  </script>
</body>
</html>